package com.ruoyi.web.controller.system;

import com.ruoyi.common.annotation.Anonymous;
import com.ruoyi.system.fastgpt.vo.FastGptRespVO;
import com.ruoyi.system.service.ISysWhitePaperKnowledgeBaseService;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * FastGpt知识库接口管理
 *
 * @author dup
 * @date 2025-06-09 17:56:09
 */
@RestController
@RequestMapping("/v1" )
public class SysFastGptController {
	@Autowired
    private ISysWhitePaperKnowledgeBaseService sysWhitePaperKnowledgeBaseService;

	/**
	 * 列表查询
	 */
	@Anonymous
	@Operation(summary = "列表查询" , description = "列表查询" )
	@PostMapping("/file/list" )
	public FastGptRespVO list() {
		FastGptRespVO fastGptRespVO = new FastGptRespVO();
		fastGptRespVO.setData(sysWhitePaperKnowledgeBaseService.listFastGptFile());

		return fastGptRespVO;
	}

	/**
	 * 获取单个文件内容（文本内容或访问链接）
	 */
	@Anonymous
	@Operation(summary = "获取单个文件内容（文本内容或访问链接）" , description = "获取单个文件内容（文本内容或访问链接）" )
	@GetMapping("/file/content" )
	public FastGptRespVO content(String id) {
		FastGptRespVO fastGptRespVO = new FastGptRespVO();
		fastGptRespVO.setData(sysWhitePaperKnowledgeBaseService.getFastGptFileContent(Long.valueOf(id)));

		return fastGptRespVO;
	}

	/**
	 * 获取文件阅读链接（用于查看原文）
	 */
	@Anonymous
	@Operation(summary = "获取文件阅读链接（用于查看原文）" , description = "获取文件阅读链接（用于查看原文）" )
	@GetMapping("/file/read" )
	public FastGptRespVO read(String id) {
		FastGptRespVO fastGptRespVO = new FastGptRespVO();
		fastGptRespVO.setData(sysWhitePaperKnowledgeBaseService.getFastGptFileUrl(Long.valueOf(id)));

		return fastGptRespVO;
	}

	/**
	 * 获取文件详细信息（用于获取文件信息）
	 */
	@Anonymous
	@Operation(summary = "获取文件详细信息（用于获取文件信息） " , description = "获取文件详细信息（用于获取文件信息） " )
	@GetMapping("/file/detail" )
	public FastGptRespVO detail(String id) {
		FastGptRespVO fastGptRespVO = new FastGptRespVO();
		fastGptRespVO.setData(sysWhitePaperKnowledgeBaseService.getFastGptFileDetail(Long.valueOf(id)));

		return fastGptRespVO;
	}
}
